package com.ruoyi.erecord.employee.service;

import java.util.Collection;
import java.util.List;

import com.ruoyi.api.dto.employee.EmployeeImageDto;
import com.ruoyi.api.dto.employee.EmployeeMapDetailDto;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.erecord.employee.domain.bo.EmployeeBo;
import com.ruoyi.erecord.employee.domain.vo.EmployeeImportDetailVo;
import com.ruoyi.erecord.employee.domain.vo.EmployeeUserVo;
import com.ruoyi.erecord.employee.domain.vo.EmployeeVo;

/**
 * 人员Service接口
 *
 * @author cc
 * @date 2023-04-13
 */
public interface IEmployeeService {

    /**
     * 查询人员
     */
    EmployeeVo queryById(Long id);

    /**
     * 查询人员列表
     */
    TableDataInfo<EmployeeVo> queryPageList(EmployeeBo bo, PageQuery pageQuery);

    /**
     * 查询人员列表
     */
    List<EmployeeVo> queryList(EmployeeBo bo);

    /**
     * 新增人员
     */
    Boolean insertByBo(EmployeeBo bo);

    /**
     * 修改人员
     */
    Boolean updateByBo(EmployeeBo bo);

    /**
     * 校验并批量删除人员信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
    
    Boolean batchInsertOrUpdate(String batchNO);
    
    Boolean batchUpdate(List<EmployeeImportDetailVo> voList);
    
    List<EmployeeUserVo> getEmployeeUserVoList(String name);
    
    String getEmployeeNameById(Long id);
    
    Long getEmployeeIdByName(String name);
    
    EmployeeUserVo getEmployeeUserVoByName(String name);
    
    EmployeeUserVo getEmployeeUserVoByCode(String code);
    
	List<EmployeeImageDto> getEmployeeImageDtoList();
	
	List<EmployeeMapDetailDto> getEmployeeMapDetailDtoList(Integer serviceTypeId , String date);
}
